package com.wg.dome;


public enum ErrorCode {
    /**
     * 服务端内部错误
     */
    INNER_ERROR((short) 1, "服务端内部错误"),

    /**
     * 玩家不存在
     */
    PLAYER_EXIST((short) 2, "已经有玩家"),

    /**
     * 本地缓存中没有玩家数据
     */
    PLAYER_DATA_ERROR((short) 3, "缓存里不存在玩家{}信息"),

    /**
     * 客服端playerid和服务端id不匹配
     */
    PLAYERID_MATCH_ERROR((short) 4, "玩家id不匹配，{}!={}"),

    /**
     * 上阵英雄位置错误
     */
    FIGHT_HEROIDX_ERROR((short) 5, "上阵英雄idx[{}]无效"),

    /**
     * 英雄不在背包里
     */
    PACK_HEROID_NOT_EXIST((short) 6, "背包中不存在id={}英雄"),

    /**
     * 出战队列中不存在英雄
     */
    FIGHT_HEROID_ERROR((short) 7, "出战队列中不存在id={}英雄"),

    /**
     * 装备不在背包里
     */
    PACK_EQUIP_NOT_EXIST((short) 8, "背包中不存在id={}装备"),


    /**
     * 出战队列中不存在装备
     */
    FIGHT_EQUIP_ERROR((short) 9, "上阵位置:{} 装备类型:{}"),

    /**
     * 上阵英雄位置超出范围
     */
    FIGHT_HEROIDX_OUT((short) 10, "上阵英雄idx[{}]超出范围"),

    /**
     * 不存在该装备
     */
    EQUIP_ERROR((short) 11, "不存在id={}装备"),

    /**
     * 道具错误
     */
    ITEM_ERROR((short) 12, "道具错误"),

    /**
     * 该阵位没有角色
     */
    SZPOS_NULL((short) 13, "该阵位{}没有角色"),

    /**
     * 名字重复
     */
    PLAYER_NAME_REPEAT((short) 50000, "玩家名字重复"),

    /**
     * 上阵队列已满
     */
    FIGHT_HERO_FULL((short) 50001, "上阵队列已满"),

    /**
     * 金币不足
     */
    GOLD_LIMIT((short) 50002, "灵币不足"),

    /**
     * 仙缘不足
     */
    RMB_LIMIT((short) 50003, "仙缘不足"),

    /**
     * 已达到最高等级
     */
    LEVEL_MAX((short) 50004, "已达到最高等级"),

    /**
     * 道具数量不足
     */
    ITEM_LIMIT((short) 50005, "道具数量不足"),

    /**
     * 购买商品数量错误
     */
    GOODS_COUNT_ERROR((short) 50006, "购买商品数量错误"),
    /**
     * 操作无效
     */
    OPERATION_INVALID((short) 10000, "Invalid operation: {}"),

    /**
     * 未知操作代码
     */
    OPERATION_UNKNOWN((short) 10001, "Unknown operation");

    private final short code;
    private final String msg;

    ErrorCode(short code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public short getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}
